#ifndef IMGEOMETRYBASE_H
#define IMGEOMETRYBASE_H

#include "Core.h"
#include "imMaths.h"
#include <vector>

// Vertex struct
// Used for meshes, tailored towards graphical usage
struct Vertex {
	Vector3 Pos;
	Vector3 Normal;
	Vector2 UV;
	char BoneInds[4];
	float BoneWeights[4];

public:
	Vertex() {
		memset(this, 0, sizeof(Vertex));
		BoneWeights[0] = 1.0f;
	}
};

// Bone
// Bones in skeletal objects
struct Bone {
	Bone* Parent;
	Vector3 Pos;
	Angle Ang;
};

// Skeleton
// Collection of bones, will probably implement blending methods.
struct Skeleton {
protected:
	std::vector<Bone> m_Bones;
	std::vector<std::string> m_BoneNames;
public:
};

#endif